# Copyright (C) 2010 Iain Surgey.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
#
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

import re

define = re.compile("\s*#define\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*(.+)")
vardef = re.compile("\s*([a-zA-Z_][a-zA-Z0-9_]*)([\*\s]+)([a-zA-Z_][a-zA-Z0-9_]*)\s*([^;]*)\s*[;]\s*")
ivardef = re.compile("\s*([a-zA-Z_][a-zA-Z0-9_]*)([\*\s]+)([a-zA-Z_][a-zA-Z0-9_]*)\s*([^;]*)\s*")
sizeof = re.compile("\s*sizeof\s*\(\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*\)\s*")
varnext = re.compile("([\*\s]*)([a-zA-Z_][a-zA-Z0-9_]*)\s*(.*)\s*")
arrdef = re.compile("\s*(\[[^\]]+\])\s*")
alpha = re.compile("[A-Za-z]+")
struct = re.compile("\s*struct\s*{([^}]+)}\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*;")
inline = re.compile("#{([^}]*)}")
float = re.compile("\s*[-+]?[0-9]*\.?[0-9]+\s*")
embed = re.compile("\s*#\[(.+?)\]#\s*")
#inlvar = re.compile("([\s&\*]*)\s*([a-zA-Z_][a-zA-Z0-9_]*)((\s*(\[[^\]]+\])\s*)*)\s*")
#stvar = re.compile("\s*([a-zA-Z_][a-zA-Z0-9_]*)((\s*(\[[^\]]+\])\s*)*)\s*")
inlvar = re.compile("([\s&\*]*)\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*")
stvar = re.compile("\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*")
operator = re.compile("([\+\-\*/\|&%\^])\s*")
numer = re.compile("[0-9]*") # REMOVE THIS

